{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "dcb3e423",
   "metadata": {},
   "source": [
    "-------\n",
    "* 时间：2011/10/18-week09\n",
    "* 记录人：王秀梅"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b8d4ef48",
   "metadata": {},
   "source": [
    "# 本周知识点\n",
    "> 1. while循环\n",
    "> 2. 购物车的练习\n",
    "> 3. 元组_集合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "eec4cd37",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "你是风儿我是沙，缠缠绵绵到天涯 0\n",
      "你是风儿我是沙，缠缠绵绵到天涯 1\n",
      "你是风儿我是沙，缠缠绵绵到天涯 2\n",
      "你是风儿我是沙，缠缠绵绵到天涯 3\n",
      "你是风儿我是沙，缠缠绵绵到天涯 4\n"
     ]
    }
   ],
   "source": [
    "# while Ture可以实现 for + range 的办法\n",
    "# while True 一般用于不确定的循环次数或者无限次循环操作\n",
    "count = 0\n",
    "while True:\n",
    "    print(\"你是风儿我是沙，缠缠绵绵到天涯\",count)\n",
    "    count +=1\n",
    "    if count == 5:\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ea749b41",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hide_card:56\n"
     ]
    }
   ],
   "source": [
    "# 猜数字小游戏：0<n<100,5次机会猜数字，每次猜完出题人提示你猜的有点大/有点小\n",
    "\n",
    "hide_card = int(input(\"hide_card:\")) #出题人\n",
    "count = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "ae7d31e7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hide_card:········\n",
      "游戏开始了\n",
      "guess_digit:40\n",
      "往大猜\n",
      "guess_digit:59\n",
      "往小猜\n",
      "guess_digit:50\n",
      "往小猜\n",
      "guess_digit:45\n",
      "往大猜\n",
      "guess_digit:48\n",
      "往大猜\n",
      "猜这么多次都不对，你个笨蛋。\n",
      "正确答案是：49\n"
     ]
    }
   ],
   "source": [
    "import getpass\n",
    "hide_card = int(getpass.getpass(\"hide_card:\"))\n",
    "count = 0\n",
    "# print(hide_card)\n",
    "if hide_card <100 and hide_card>0:\n",
    "    print(\"游戏开始了\")\n",
    "    while True:\n",
    "        if count  <5:\n",
    "            guess_digit = int(input(\"guess_digit:\")) # 玩游戏的人\n",
    "            if guess_digit == hide_card:\n",
    "                print(\"yes,you got it.\")\n",
    "                break\n",
    "            elif guess_digit > hide_card:\n",
    "                print(\"往小猜\")\n",
    "            else:\n",
    "                print(\"往大猜\")\n",
    "            count = count+1\n",
    "        else:\n",
    "            print(\"猜这么多次都不对，你个笨蛋。\")\n",
    "            print(\"正确答案是：%s\"%hide_card)\n",
    "            break\n",
    "        \n",
    "else:\n",
    "    print(\"请输入数字在0-99之间，不要耍赖。\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0960bb72",
   "metadata": {},
   "source": [
    "# 购物车购物\n",
    "\n",
    "> 1. 运行程序后，让用户输入支付宝余额，然后打印我们的商品列表给用户。\n",
    "> 2. 让用户输入商品编号进行商品的购买。\n",
    "> 3. 用户选择商品后，检査用户的余额是否够，若够则直接扣款，不够则提醒用户。\n",
    "> 4. 用户可以随时退出购买，推出时打印用户已购买的商品和支付宝余额。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "71a9cd5c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入余额：10\n",
      "------蜜雪冰城列表------\n",
      "0 蜜桃四季春 6元\n",
      "1 柠檬水 4元\n",
      "2 草莓啵啵奶盖 10元\n",
      "3 杨枝甘露 12元\n",
      "请输入商品的编号：3\n",
      "您的余额不足12元，请更换支付方式或选择其他商品\n",
      "------蜜雪冰城列表------\n",
      "0 蜜桃四季春 6元\n",
      "1 柠檬水 4元\n",
      "2 草莓啵啵奶盖 10元\n",
      "3 杨枝甘露 12元\n",
      "请输入商品的编号：1\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'shopping_list' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_1816/2189061251.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m     22\u001b[0m             \u001b[1;31m# 余额足够\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     23\u001b[0m             \u001b[0mAliPay\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mAliPay\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mgood_list\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0muser_choice\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;31m# 更新用户余额\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 24\u001b[1;33m             \u001b[0mshopping_list\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgood_list\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0muser_choice\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     25\u001b[0m             \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"购买成功，请等待制作...您的余额还有：%s元\"\u001b[0m\u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mAliPay\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     26\u001b[0m         \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'shopping_list' is not defined"
     ]
    }
   ],
   "source": [
    "# 1. 运行程序后，让用户输入支付宝余额√，然后打印我们的商品列表给用户\n",
    "good_list = [\n",
    "    [\"蜜桃四季春\", 6],\n",
    "    [\"柠檬水\", 4],\n",
    "    [\"草莓啵啵奶盖\", 10],\n",
    "    [\"杨枝甘露\", 12],\n",
    "]\n",
    "AliPay = int(input(\"请输入余额：\"))\n",
    "\n",
    "while True:\n",
    "    print(\"------蜜雪冰城列表------\")\n",
    "    for i in range(4):\n",
    "        print(i,good_list[i][0],str(good_list[i][1])+\"元\")\n",
    "    \n",
    "    # 2 让用户输入商品编号，进行商品的购买\n",
    "    user_choice = input(\"请输入商品的编号：\")\n",
    "    # 3 用户选择商品后，检查用户的余额是否足够，若够则直接扣款，不够则提醒用户\n",
    "    # 3.1 用户输入商品序号\n",
    "    if user_choice.isdigit() and int(user_choice)<len(good_list) and int(user_choice)>=0:\n",
    "        user_choice = int(user_choice)\n",
    "        if AliPay > good_list[user_choice][1]:\n",
    "            # 余额足够\n",
    "            AliPay = AliPay - good_list[user_choice][1] # 更新用户余额\n",
    "            shopping_list.append(good_list[user_choice])\n",
    "            print(\"购买成功，请等待制作...您的余额还有：%s元\"%(AliPay))\n",
    "        else:\n",
    "            # 余额不够\n",
    "            print(\"您的余额不足\"+str(good_list[user_choice][1])+\"元，请更换支付方式或选择其他商品\")\n",
    "    # 3，2 用户输入其他\n",
    "    elif user_choice == \"q\":\n",
    "        print(\"感谢您的购买，欢迎下次光临\")\n",
    "        print(\"您的购物车：\",shopping_list)\n",
    "        print(\"您的余额还有：\",AliPay)\n",
    "        break\n",
    "    else:\n",
    "        print(\"您输入的商品不存在或者您输入的内容有误\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9aaa8557",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
